home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 722 / 722.xpi / chrome / noscript.jar / content / noscript / ABE.g next >
Text File  |  2010-02-12  |  1KB  |  66 lines

  1. grammar ABE;
  2.  
  3. options {
  4.    language=JavaScript;
  5.    output=AST; 
  6. }
  7.  
  8. tokens {
  9.   T_ACTION;
  10.   T_METHODS;
  11. }
  12.  
  13. ruleset   : rule* EOF
  14. ;
  15. rule      : subject predicate+ -> subject predicate+ 
  16. ;
  17. predicate : action methods? origin? -> T_ACTION action T_METHODS methods? origin?
  18. ;
  19. methods      : (method+ | ALL)
  20. ;
  21. method    : (HTTPVERB | SUB)
  22. ;
  23. origin    : T_FROM resources 
  24. ;
  25. subject   : T_SITE resources
  26. ;
  27. resources : (resource+ | ALL)
  28. ;    
  29. resource  : REGEXP | GLOB | URI | LOCATION
  30. ;
  31. action    : A_DENY | A_LOGOUT | A_SANDBOX  | A_ACCEPT
  32. ;
  33.  
  34. T_SITE    : 'Site' ;
  35. T_FROM       : ('f' | 'F') 'rom' ;
  36. A_DENY    : 'Deny' ;
  37. A_LOGOUT  : 'Logout' | 'Anon' 'ymize'? ;
  38. A_SANDBOX : 'Sandbox' ;
  39. A_ACCEPT  : 'Accept' ;
  40.  
  41. fragment URI_START : 'a'..'z' | '0'..'9'
  42. ;
  43. fragment URI_PART  : 'a'..'z' | 'A'..'Z' | '0'..'9' | '_' | '-' | '.' | 
  44.              '[' | ']' | ':' | '/' | '@' | '~' | ';' | ',' | 
  45.              '?' | '&' | '=' | '%' | '#'
  46. ;
  47. LOCATION  : 'LOCAL' | 'SELF'    
  48. ;
  49. URI       : URI_START URI_PART+
  50. ;
  51. GLOB      : (URI_START | '*') (URI_PART | '*')*
  52. ;
  53. REGEXP    : '^' ~'\n'+
  54. ;
  55. ALL      : 'ALL'
  56. ;
  57. SUB      : 'SUB'    
  58. ;
  59. HTTPVERB  : 'A'..'Z' 'A'..'Z'+
  60. ;    
  61.  
  62. WS  :  (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;}
  63. ;
  64. COMMENT : '#' ~'\n'* {$channel=HIDDEN;}
  65. ;
  66.